﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.Mvc;
using System.ComponentModel.DataAnnotations;
using System.Data.Entity;
using System.ComponentModel;

namespace ExtremeEvents.Models
{
    public class Evento
    {
        [Key]
        public int id_evento { get; set; }

        [NotMapped]
        public Guid id_utilizador { get; set; }

        [Required(ErrorMessage="Campo obrigatório")]
        [Display(Name = "Categoria do evento:")]
        public int id_categoria { get; set; }

        [NotMapped]
        public List<Categoria> categorias { get; set; }

        [Required(ErrorMessage = "Campo obrigatório")]
        [DataType(DataType.Date)]
        [Display(Name = "Data inicio:")]
        public DateTime data_inicio { get; set; }

        [Required(ErrorMessage = "Campo obrigatório")]
        [DataType(DataType.Date)]
        [Display(Name = "Data fim:")]
        public DateTime data_fim { get; set; }

        [Required(ErrorMessage = "Campo obrigatório")]
        [Display(Name = "Titulo do evento:")]
        public string titulo { get; set; }

        [Required(ErrorMessage = "Campo obrigatório")]
        [Display(Name = "Descricao do evento:")]
        public string descricao { get; set; }

        [Range(0,500,ErrorMessage = "Valor inreal")]
        [DataType(DataType.Currency)]
       // [RegularExpression(@"[-+]?[0-9]*\.?[0-9]?[0-9]", ErrorMessage = "Tem de ser numérico")]
        [Display(Name = "Preço:")]
        public decimal preco { get; set; }

        [Display(Name = "Morada")]
        public string morada { get; set; }
        
        [Display(Name = "Código Postal")]
        public string codigo_postal { get; set; }
        
        [Display(Name = "URL")]
        public string url { get; set; }

        [Display(Name = "Contacto telefónico")]
        public string contacto_telefonico { get; set; }

        [Display(Name = "Email")]
        public string email { get; set; }

        [Display(Name = "Latitude")]
        public string latitude { get; set; }

        [Display(Name = "Longitude")]
        public string longitude { get; set; }

        public string userName { get; set; }

        public Boolean cancelado { get; set; }

        [NotMapped]
        public string srcUltimoFlyer { get; set; }
    }
}